package com.moli.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.moli.domain.ResponseResult;
import com.moli.domain.entity.User;
import org.springframework.stereotype.Service;

/**
 * @author xiaolu
 * @Date 2023/6/7
 * @Description 用户服务层
 */
public interface UserService extends IService<User> {

    /**
     * 用户信息
     * @return
     */
    ResponseResult userInfo();

    /**
     * 更新用户信息
     * @param user
     * @return
     */
    ResponseResult updateUserInfo(User user);

    /**
     * 用户注册
     * @param user
     * @return
     */
    ResponseResult register(User user);
    /***
     * 获取用户列表 分页
     * @param user
     * @param pageNum
     * @param pageSize
     * @return
     */
    ResponseResult selectUserPage(User user, Integer pageNum, Integer pageSize);

    /**
     * 检查用户名的唯一性
     * @param userName
     * @return
     */
    boolean checkUserNameUnique(String userName);

    /**
     * 检查用户手机号的唯一性
     * @param user
     * @return
     */
    boolean checkPhoneUnique(User user);

    /**
     * 检查用户邮箱的唯一性
     * @param user
     * @return
     */
    boolean checkEmailUnique(User user);

    /**
     * 新增用户
     * @param user
     * @return
     */
    ResponseResult addUser(User user);

    /**
     * 更新用户
     * @param user
     */
    void updateUser(User user);
}
